/**
 * @author Gustavo Velazquez
 */
$(document).ready(function() {

	$.validate();

	// COMPRUEBA LA EXTENSION DEL ARCHIVO
	function comprobar_extension() {
		var ext = $('#id_archivo').val().split('.').pop().toLowerCase();
		var pk_informe_anterior = $('#pk_informe_antiguo').val();
		var nombre_archivo = $('#id_archivo').val().split('\\').pop();

		// VERIFICAR SI EL CAMPO ESTA VACIO, EN TAL CASO MENSAJE DE CAMPO REQUERIDO
		if (ext == '') {
			// EN CASO DE EDICION DEL CAMPO, NO ES NECESARIO QUE SE CARGUE UN NUEVO DOCUMENTO
			if (pk_informe_anterior == 0) {
				document.getElementById("archivo_okay").style.display = 'none';
				document.getElementById("error_archivo").style.display = 'none';
				document.getElementById("error_archivo").style.display = 'block';
				document.getElementById("error_archivo").innerHTML = 'Se requiere que suba el documento del informe en los formatos citados mas arriba.';
				document.getElementById("id_archivo").value = '';
				return 0;
			} else {
				return 1;
			}

		} else {

			document.getElementById("archivo_okay").style.display = 'none';
			document.getElementById("error_archivo").style.display = 'none';
			if ($.inArray(ext, ['pdf', 'doc', 'docx']) == -1) {
				document.getElementById("error_archivo").style.display = 'block';
				document.getElementById("error_archivo").innerHTML = 'La extensi��n/formato .'.concat(ext, ' del archivo ', nombre_archivo, ' no esta permitida');
				document.getElementById("id_archivo").value = '';
				return 0;
			} else {
				document.getElementById("archivo_okay").style.display = 'block';
				document.getElementById("archivo_okay").innerHTML = 'Archivo: '.concat(nombre_archivo, ' cargado exitosamente!');
				return 1;
			}
		}
	}

	// VERIFICA QUE NO HAYA UN SOLAPAMIENTO DE PERIODOS
	function comprobar_periodo(fecha_inicio, fecha_fin, pais_formulario_antiguo, pk_informe_antiguo) {
		return $.ajax({
			type : "POST",
			url : '/plataforma/ajax_control_periodo/',
			data : {
				'fecha_inicio' : fecha_inicio,
				'fecha_fin' : fecha_fin,
				'pais_formulario_antiguo' : pais_formulario_antiguo,
				'pk_informe_antiguo' : pk_informe_antiguo,
			},
			async : false,
		});
	}

	function enviar_formulario() {
		$("#formulario_carga").submit();
	}

	// Mostrar el calendario en los campos de fecha de inicio y fin
	$('#id_fecha_inicio').click(function() {
		$("#id_fecha_inicio.datePicker").datepicker();
	});
	$('#id_fecha_fin').click(function() {
		$("#id_fecha_fin.datePicker").datepicker();
	});

	// Ocultar todas las alertas en caso de limpiar el formulario
	$('#id_limpiar').click(function() {
		$(".alert").hide();
		$('#mensaje_warning').hide();
	});

	// Si existe algun warning, pero el usuario confirma hace el submit.
	$('#id_confirmar').click(function() {
		enviar_formulario();
	});

	$('#id_cancelar').click(function() {
		$('#warning_box').hide();
		$("#id_limpiar, #id_enviar").show(500);
	});

	$('#id_archivo').change(comprobar_extension);

	$('#id_resumen').blur(function() {
		// Resumen
		var resumen = document.getElementById('id_resumen').value;
		if (resumen.length < 30 || resumen == '') {
			//alert (resumen.length);
			alertar_error = true;
			$('#error_resumen').html('Campo resumen requerido. Minimo 30 caracteres.').show(500);
		}else{
			$('#error_resumen').hide();
		}
	});

	$('#id_fecha_inicio , #id_fecha_fin ').datepicker().on('changeDate', function() {
		$(".alert").hide();
		var fecha_inicio = document.getElementById('id_fecha_inicio').value;
		var fecha_fin = document.getElementById('id_fecha_fin').value;
		var pais_formulario_antiguo = document.getElementById("pais_formulario_antiguo").value;
		var pk_informe_antiguo = document.getElementById("pk_informe_antiguo").value;

		$(this).datepicker('hide');
		if (fecha_inicio != '' && fecha_fin != '') {
			respuesta = comprobar_periodo(fecha_inicio, fecha_fin, pais_formulario_antiguo, pk_informe_antiguo);
			respuesta.success(function(data) {
				if (data.bandera == true) {
					// Periodo correcto
					$('#error_periodo').hide();
					$('#periodo_okay').html(data.mensaje).show(500);
					$('#id_fecha_inicio , #id_fecha_fin ').datepicker('hide');
				} else {
					// Periodo incorrecto
					$('#periodo_okay').hide();
					$('#error_periodo').html(data.mensaje).show(500);
					$('#id_fecha_inicio , #id_fecha_fin ').datepicker('hide');
				}
			});
		}
	});

	$('#id_enviar').click(function() {
		$(".alert").hide();
		// Comprobar los datos de los diferentes campos.
		var alertar_error = false;
		var alertar_warning = false;
		// Periodo
		var fecha_inicio = document.getElementById('id_fecha_inicio').value;
		var fecha_fin = document.getElementById('id_fecha_fin').value;
		var pais_formulario_antiguo = document.getElementById("pais_formulario_antiguo").value;
		var pk_informe_antiguo = document.getElementById("pk_informe_antiguo").value;

		if (fecha_inicio != '' && fecha_fin != '') {
			check_periodo = comprobar_periodo(fecha_inicio, fecha_fin, pais_formulario_antiguo, pk_informe_antiguo);
			check_periodo.success(function(data) {
				if (data.bandera == false) {
					$('#periodo_okay').hide();
					$('#error_periodo').html(data.mensaje).show(500);
					alertar_error = true;
				}
			});
		} else {
			if (fecha_inicio == '') {
				$('#periodo_okay').hide();
				$('#error_periodo').html('El campo fecha de inicio esta vac��o').show(500);
				alertar_error = true;
			}
			if (fecha_fin == '') {
				$('#periodo_okay').hide();
				$('#error_periodo').html('El campo fecha de fin esta vac��o').show(500);
				alertar_error = true;
			}
			if (fecha_inicio == '' && fecha_fin == '') {
				$('#periodo_okay').hide();
				$('#error_periodo').html('Los campos fecha de inicio y fecha de fin est��n vac��os').show(500);
				alertar_error = true;
			}
		}

		// Resumen
		$('#error_resumen').hide();
		var resumen = document.getElementById('id_resumen').value;
		if (resumen.lenght < 30 || resumen == '') {
			alertar_error = true;
			$('#error_resumen').html('Campo resumen requerido. Minimo 30 caracteres.').show(500);
		}

		// Archivo
		if (comprobar_extension() == 0) {
			alertar_error = true;
		}

		//$('.alert-success').show();

		if (alertar_warning == false && alertar_error == false) {
			enviar_formulario();
		}
	});

});
